package com.travel.server.manager.dao;

import com.travel.server.manager.model.ProjectSpecial;
import com.travel.server.manager.model.ProjectSpecialExample;
import com.travel.server.manager.model.dto.SpecialEnumDto;
import com.travel.server.manager.model.dto.data.OrderCostItemDto;
import org.apache.ibatis.annotations.Param;

import java.util.Date;
import java.util.List;

public interface ProjectSpecialDao {
    int countByExample(ProjectSpecialExample example);

    int deleteByExample(ProjectSpecialExample example);

    int deleteByPrimaryKey(Integer id);

    int insert(ProjectSpecial record);

    int insertSelective(ProjectSpecial record);

    List<ProjectSpecial> selectByExample(ProjectSpecialExample example);

    ProjectSpecial selectByPrimaryKey(Integer id);

    int updateByExampleSelective(@Param("record") ProjectSpecial record, @Param("example") ProjectSpecialExample example);

    int updateByExample(@Param("record") ProjectSpecial record, @Param("example") ProjectSpecialExample example);

    int updateByPrimaryKeySelective(ProjectSpecial record);

    int updateByPrimaryKey(ProjectSpecial record);

    void updateByDays(@Param("arrangeExplains") String arrangeExplains, @Param("days") String days, @Param("projectId") Integer projectId, @Param("updateBy") String updateBy);

    List<SpecialEnumDto> selectEnum(List<Integer> projectIdList);

    void deleteByProjectId(Integer projectId);

    List<OrderCostItemDto> selectOrderCostItem(@Param("startTime") Date startTime, @Param("endTime") Date endTime);

    Integer selectOrderDiscount(@Param("startTime") Date startTime, @Param("endTime") Date endTime, @Param("specialId") Integer specialId);

    Integer selectSpecialCost(@Param("startTime") Date startTime, @Param("endTime") Date endTime);
}